package shiro.com.service.file.impl;

import java.util.List;
import java.util.stream.Collectors;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import shiro.com.domain.file.UserFileUp;
import shiro.com.domain.file.UserFileupComont;
import shiro.com.domain.st.StSc;
import shiro.com.domain.st.vo.StScVo;
import shiro.com.mapper.file.UserFileUpMapper;
import shiro.com.mapper.file.UserFileupComontMapper;
import shiro.com.mapper.st.StScMapper;
import shiro.com.service.file.IUserFileupComontService;
import shiro.com.service.st.IStScService;

/**
 * 【请填写功能名称】Service业务层处理
 *
 * @author ruoyi
 * @date 2022-12-14
 */
@Service
public class UserFileupComontServiceImpl implements IUserFileupComontService
{
    @Autowired
    private UserFileupComontMapper userFileupComontMapper;
    @Autowired
    private UserFileUpMapper userFileUpMapper;
    @Autowired
    private IStScService stScService;
    @Autowired
    private StScMapper stScMapper;
    /**
     * 查询【请填写功能名称】
     *
     * @param userFileupComontId 【请填写功能名称】ID
     * @return 【请填写功能名称】
     */
    @Override
    public UserFileupComont selectUserFileupComontById(Integer userFileupComontId)
    {
        return userFileupComontMapper.selectUserFileupComontById(userFileupComontId);
    }

    /**
     * 查询【请填写功能名称】列表
     *
     * @param userFileupComont 【请填写功能名称】
     * @return 【请填写功能名称】
     */
    @Override
    public List<UserFileupComont> selectUserFileupComontList(UserFileupComont userFileupComont)
    {
        return userFileupComontMapper.selectUserFileupComontList(userFileupComont);
    }

    /**
     * 新增【请填写功能名称】
     *
     * @param userFileupComont 【请填写功能名称】
     * @return 结果
     */

    @Override
    public int insertUserFileupComont(UserFileupComont userFileupComont)
    {
        int commonId = userFileupComont.getComontId().intValue();

        StSc stsc = new StSc();

        stsc.setStScClassid(commonId);
        List<StSc> stScs = stScMapper.selectStScByclassId(commonId + "");

        List<UserFileUp> collect = stScs.stream().filter(item->item.getStScClassid().equals(commonId)).map(item -> {
            UserFileUp userFileUp = new UserFileUp();
            userFileUp.setFileSrc("");
            userFileUp.setFileState(0L);
            userFileUp.setCommId(userFileupComont.getComontId().longValue());
            userFileUp.setFileUpid(userFileupComont.getFileId().longValue());

            userFileUp.setUserId(item.getStScStid());
            return userFileUp;
        }).collect(Collectors.toList());
        if(!collect.isEmpty()){
            userFileUpMapper.insertListFileUp(collect);
        }

        return userFileupComontMapper.insertUserFileupComont(userFileupComont);
    }

    /**
     *
     * 修改【请填写功能名称】
     *
     * @param userFileupComont 【请填写功能名称】
     * @return 结果
     */
    @Override
    public int updateUserFileupComont(UserFileupComont userFileupComont)
    {
        return userFileupComontMapper.updateUserFileupComont(userFileupComont);
    }

    /**
     * 批量删除【请填写功能名称】
     *
     * @param userFileupComontIds 需要删除的【请填写功能名称】ID
     * @return 结果
     */
    @Override
    public int deleteUserFileupComontByIds(Integer[] userFileupComontIds)
    {
        return userFileupComontMapper.deleteUserFileupComontByIds(userFileupComontIds);
    }

    /**
     * 删除【请填写功能名称】信息
     *
     * @param userFileupComontId 【请填写功能名称】ID
     * @return 结果
     */
    @Override
    public int deleteUserFileupComontById(Integer userFileupComontId)
    {
        return userFileupComontMapper.deleteUserFileupComontById(userFileupComontId);
    }
}
